Automated or partially automated libraries, such as robotic tape or other storage media libraries, and/or associated entities, typically have the ability to inventory the contents of the library and provide the inventory results to a requesting entity, such as a system, application, or other process that requests and/or needs the information, e.g., a backup server and/or application. In the case of a robotic tape (or other media) library, the inventory data typically includes such information as the identity of each volume of media currently available in the library, e.g., a tape name or number read from a bar code or other label affixed to the media volume, and for each volume its current location (e.g., the “slot” or other storage location in which it is currently positioned. Backup servers and/or applications and/or other library users use such information to provide commands to the library in the course of performing, for example, data backup and/or recovery. For example, a backup application might instruct the library to move the volume currently in slot 41 to a designate tape drive A.
Whenever a volume of media is added, removed, moved, or altered, a user of the storage media library, such as a backup server and/or application, may detect the change. However sometimes this may happen in an unexpected fashion. For example, the backup application/agent may determine that the tape library was power cycled, or the front door was opened or it otherwise lost and then regained connection to the tape library. In these or similar situations a full inventory from the library is needed, to ensure that its view of the library contents is still accurate.
Depending on the configuration and/or circumstances, upon receipt of the new inventory information, the requesting user typically to date has either done a slot by slot comparison of the received new inventory data with a stored view of the library contents, to see precisely what has changed, or has simply replaced the previously-stored inventory data with the newly received data, thereby ensuring that the most current and accurate view of the contents is known. For a sizable inventory system, this reconciliation procedure can be time consuming and take up resources like memory, processor cycles, and bandwidth. Much of this effort is wasted in those cases in which a request for new inventory information is triggered but the library contents have not changed. For example users of tape library may open the front door to examine something inside the library, or there could be a disconnect and reconnect to the tape library. In either case tape library user is unsure if the tape library contents changed. Therefore, it would be useful to be able to determine quickly and with minimal resource use, prior to obtaining and/or fully processing new inventory data, whether the library contents have been really changed.